Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Roundup (Bugtracker)</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Roundup_(Bugtracker)"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Roundup_Bugtracker rootpage-Roundup_Bugtracker skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Roundup (Bugtracker)</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><table class="float-right infobox toccolours toptextcells" style="border-spacing:5px; font-size:90%; text-align:left; width:21em;">

<tbody><tr>
<th colspan="2" class="hintergrundfarbe6" style="font-size:105%; text-align:center;">Roundup
</th></tr>
<tr>
<th colspan="2" class="hintergrundfarbe5" style="font-size:105%; text-align:center;">Basisdaten
<p class="mw-empty-elt">
</p>
</th></tr>
<tr>
<td><b><a href="Maintainer" title="Maintainer">Hauptentwickler</a></b>
</td>
<td>Ralf Schlatterbeck
</td></tr>
<tr>
<td><b><a href="Softwareentwickler" title="Softwareentwickler">Entwickler</a></b>
</td>
<td>Richard Jones, Roundup Initiative
</td></tr>
<tr>
<td><b>Aktuelle&nbsp;<a href="Version_(Software)" title="Version (Software)">Version</a></b>
</td>
<td>2.3.0<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> <br> (13.&nbsp;Juli 2023)
</td></tr>
<tr>
<td><b><a href="Betriebssystem" title="Betriebssystem">Betriebssystem</a></b>
</td>
<td>Alle auf denen <a href="Python_(Programmiersprache)" title="Python (Programmiersprache)">Python</a> läuft.
</td></tr>
<tr>
<td><b><a href="Programmiersprache" title="Programmiersprache">Programmier­sprache</a></b>
</td>
<td><span class="wikidata-content"><a href="Python_(Programmiersprache)" title="Python (Programmiersprache)">Python</a><sup id="cite_ref-_3e68552ef5cb14bc_2-0" class="reference"><a href="#cite_note-_3e68552ef5cb14bc-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup></span>
</td></tr>
<tr>
<td><b>Lizenz</b>
</td>
<td>Verschiedene Freie-Software-Lizenzen<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</td></tr>
<tr>
<td><b><a href="Lokalisierung_(Softwareentwicklung)" title="Lokalisierung (Softwareentwicklung)">deutschsprachig</a></b>
</td>
<td>ja
</td></tr>
<tr>
<td class="hintergrundfarbe5" colspan="2" style="text-align:center;"><a rel="nofollow" class="external text" href="https://www.roundup-tracker.org/">www.roundup-tracker.org</a>
</td></tr></tbody></table>
<p><b>Roundup</b> ist ein <a href="Freie_Software" title="Freie Software">freier</a>, <a href="Webbasiert" class="mw-redirect" title="Webbasiert">webbasierter</a> <a href="Bugtracker" title="Bugtracker">Issuetracker</a> mit umfassender <a href="E-Mail" title="E-Mail">Mail</a>-Schnittstelle. Er ist in der <a href="Programmiersprache" title="Programmiersprache">Programmiersprache</a> <a href="Python_(Programmiersprache)" title="Python (Programmiersprache)">Python</a> implementiert und leicht erweiterbar. Von seiner <a href="Gemeinschaft" title="Gemeinschaft">Community</a> wird Roundup als Issue-Tracker bezeichnet, da sich das Konzept nicht nur auf <a href="Programmfehler" title="Programmfehler">Bugs</a>, sondern auf Vorgänge bzw. Aufgaben im Allgemeinen anwenden lässt.
</p>

<div class="mw-heading mw-heading2"><h2 id="Entwicklung">Entwicklung</h2></div>
<p>Roundup basiert auf einem preisgekrönten Design von Ka-Ping Yee und wurde lange unter der Leitung von Richard Jones weiterentwickelt. Inzwischen gibt es viele weitere Entwickler wie u.&nbsp;a. Ezio Melotti, Berndhard Reiter, Ralf Schlatterbeck, Anatoly Techtonik und John P. Rouillard. Anatoly Techtonik gab die am 11. Januar 2016 erschienene Version 1.5.1 heraus;
Rouillard die Versionen 1.6.0 (Juli 2018) – 2.3.0 (Juli 2023).
</p>
<div class="mw-heading mw-heading2"><h2 id="Funktionsumfang">Funktionsumfang</h2></div>
<p>In der Standard-Konfiguration hat Roundup folgenden Funktionsumfang:
</p>
<ul><li>eine webbasierte Oberfläche zur Bearbeitung der Vorgänge bzw. Aufgaben (engl. <i>issues</i>), und zur Suche nach solchen. Ab Version 1.4.21 enthält Roundup zusätzlich eine Vorlage (engl. <i>Template</i>) mit responsive Design auf der Basis von Bootstrap</li>
<li>ein <a href="E-Mail" title="E-Mail">Mail</a>-Gateway, das es erlaubt, Vorgänge bzw. Aufgaben zu erstellen und zu bearbeiten</li>
<li>eine Datenbank-Abstraktionsschicht, die gegenwärtig u. a. <a href="PostgreSQL" title="PostgreSQL">PostgreSQL</a>, <a href="MySQL" title="MySQL">MySQL</a> und <a href="SQLite" title="SQLite">SQLite</a> unterstützt</li>
<li>jeder Vorgang bzw. jede Aufgabe hat seine eigene Interessentenliste (<i>nosy</i>-Liste), die zur Benachrichtigung per E-Mail verwendet wird</li>
<li>ein auf Rollen, Klassen und Objekten basierendes Berechtigungssystem</li>
<li>einen interaktiven Kommandozeilen-Interpreter (engl. <i>shell</i>) zum Erstellen und Einspielen von <a href="Backup" class="mw-redirect" title="Backup">Backups</a> sowie zum Bearbeiten der Objekte</li></ul>
<p>Der Funktionsumfang lässt sich leicht durch selbst programmierte Erweiterungen
(sogenannte Detektoren; siehe unten) an neue Anforderungen anpassen.
</p><p>Roundup lässt sich sowohl als eigenständiger Serverprozess betreiben als auch über <a href="Mod_python" title="Mod python">mod python</a> oder (notfalls) als <a href="Common_Gateway_Interface" title="Common Gateway Interface">CGI</a>-Skript mit Hilfe von z.&nbsp;B. dem <a href="Webserver" title="Webserver">Webserver</a> Programm <i>apache</i>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Konzepte">Konzepte</h2></div>
<p>Roundup ist in hohem Maße anpassbar:<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Datenbankschema">Datenbankschema</h3></div>
<p>Das Schema beschreibt Klassen von Objekten. In dem als Vorlage mitgelieferten Muster namens <i>classic</i> gibt es zum Beispiel die Klassen <i>issue</i> (Vorgang), <i>msg</i> (Nachricht), <i>user</i> (Benutzer), <i>file</i> (Dateianhang). Leicht lassen sich weitere Klassen (z.&nbsp;B. Kunde, Produkt, Standort) oder Beziehungen (engl. <i>link</i>) zwischen Klassen ergänzen.
</p><p>Das Datenbankschema wird in einer <a href="Python_(Programmiersprache)" title="Python (Programmiersprache)">Python</a>-Datei im Wurzelverzeichnis der jeweiligen Bugtracker-Instanz festgelegt; dieses Schema wird von Roundup beim Start (bzw., wenn nicht als eigenständiger Serverprozess betrieben), des <a href="Apache_HTTP_Server" title="Apache HTTP Server">Apache-Servers</a> eingelesen. Wenn dabei Änderungen festgestellt werden (z.&nbsp;B. in Form neuer Felder), werden die Tabellen der zugrundeliegenden relationalen Datenbank automatisch erweitert.
</p>
<div class="mw-heading mw-heading3"><h3 id="Seiten-Templates">Seiten-Templates</h3></div>
<p>Roundup verwendet die von <a href="Zope_(Webanwendungsserver)" title="Zope (Webanwendungsserver)">Zope</a> bekannte <a href="Template_Attribute_Language" title="Template Attribute Language">Template Attribute Language</a> (TAL), um <a href="HTML" class="mw-redirect" title="HTML">HTML</a>- oder <a href="XHTML" class="mw-redirect" title="XHTML">XHTML</a>-Seiten zu erzeugen. Manche Templates (<a href="Schablone" title="Schablone">Schablonen</a>) sind universell verwendbar, wie z.&nbsp;B. _generic.index.html, das (berechtigten Usern) die Bearbeitung der Einträge aller Klassen erlaubt, die über kein eigenes index-Template verfügen.
</p><p>Trifft eine Anfrage für „issue123“ ein, so wird zunächst dieser <i>Designator</i> in die <a href="Klasse_(Objektorientierung)" title="Klasse (Objektorientierung)">Klasse</a> „issue“ und die <a href="Identifikationsnummer" class="mw-redirect" title="Identifikationsnummer">ID</a> „123“ zerlegt; als Template-Auswahl wird „item“ angenommen, sofern kein anderes angegeben wurde. Es wird zunächst nach der Template-Datei issue.item.html gesucht; ist diese nicht vorhanden, wird alternativ _generic.item.html verwendet. Nur falls dieses auch fehlt, tritt ein Fehler auf.
</p>
<div class="mw-heading mw-heading3"><h3 id="Detektoren">Detektoren</h3></div>
<p>Viele Funktionen von Roundup, incl. mancher Standardfunktionen, werden mit Hilfe von sogenannten <i>Detektoren</i> realisiert, die im Unterverzeichnis „detectors“ der Tracker-Instanz abgelegt werden. Es handelt sich um Python-<a href="Subroutine" class="mw-redirect" title="Subroutine">Funktionen</a>, denen das zu ändernde (soweit schon vorhanden) Objekt sowie die Änderungen an den Attributwerten zur Verfügung stehen.
</p><p>Detektoren werden in <i>Auditoren</i> und <i>Reaktoren</i> unterteilt. Die Auditoren dienen in erster Linie dazu, vor der Ausführung einer Transaktion automatisch bestimmte Änderungen vorzunehmen. Zum Beispiel wird in der Standardkonfiguration ein Anwender (engl. <i>user</i>) zur Interessenten-Liste (engl. <i>nosy list</i>) hinzugefügt, wenn ihm ein Vorgang bzw. eine Aufgabe (engl. <i>issue</i>) zur Bearbeitung zugewiesen wird. Es können auch unerlaubte Änderungen zurückgewiesen und (zumindest in der Web-Oberfläche) der Anwender zur Korrektur seiner Eingaben aufgefordert werden. Die Reaktoren werden nach den Auditoren ausgeführt und dienen z.&nbsp;B. dazu, neue Nachrichten bzw. Kommentare in einem Vorgang automatisch per E-Mail an alle Mitglieder der jeweiligen Interessenten-Liste zu verschicken.
</p><p>Detektoren werden ausgelöst, wenn eine der Aktionen
</p>
<ul><li>„create“ (erzeugen eines Objekts)</li>
<li>„set“ (ändern von Attributen)</li>
<li>„retire“ (deaktivieren) und</li>
<li>„restore“ (reaktivieren)</li></ul>
<p>ausgeführt (bzw. der Versuch unternommen) wird. Sie lassen sich verwenden, um auch komplexe Verwaltungsarbeitsabläufe (engl. <i>workflow</i>) abzubilden.
</p>
<div class="mw-heading mw-heading3"><h3 id="Erweiterungen">Erweiterungen</h3></div>
<p>Im Instanz-Unterverzeichnis „extensions“ können weitere Funktionen abgelegt werden, die für erweiterte Funktionalitäten benötigt werden, die z.&nbsp;B. mit den Mitteln der <a href="Template_Attribute_Language" title="Template Attribute Language">TAL</a> allein nicht realisierbar sind; auch neue Aktionen sind möglich.
</p><p>Module mit Funktionen, die sowohl von Detektoren als auch von Erweiterungen verwendet werden können, können im Instanz-Unterverzeichnis „lib“ abgelegt werden.
</p>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://www.roundup-tracker.org/">www.roundup-tracker.org</a></li>
<li><a rel="nofollow" class="external text" href="https://www.runtux.com/files/download/roundup.4.pdf">Roundup: Einführung und Anwendungsbeispiele</a>, von Ralf Schlatterbeck (PDF; 246 kB)</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://sourceforge.net/p/roundup/mailman/message/37680241/">E-Mail-Ankündigung vom 2023-07-13</a></span>
</li>
<li id="cite_note-_3e68552ef5cb14bc-2"><span class="mw-cite-backlink"><a href="#cite_ref-_3e68552ef5cb14bc_2-0">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://www.openhub.net/p/roundup/analyses/latest/languages_summary"><cite style="font-style:italic"><span lang="en">The roundup Open Source Project on Open Hub: Languages Page</span></cite>.</a> In: <cite style="font-style:italic">Open Hub</cite>. (abgerufen am 26.&nbsp;September 2018).</span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://roundup.hg.sourceforge.net/hgweb/roundup/roundup/file/tip/COPYING.txt">Lizenztexte von Roundup aus dem aktuellen Versionskontrollsystem</a></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><a href="#cite_ref-4">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.roundup-tracker.org/cgi-bin/moin.cgi/CustomisationExamples">roundup-tracker.org</a></span>
</li>
</ol></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2025-11-01" href="https://de.wikipedia.org/wiki/?title=Roundup_(Bugtracker)&amp;oldid=261113908">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>